/*
 * My97 DatePicker 4.8
 * License: http://www.my97.net/license.asp
 */
var $dp, WdatePicker; (function() {
    var l = {
        $langList: [{
            name: "en",
            charset: "UTF-8"
        },
        {
            name: "zh-cn",
            charset: "gb2312"
        },
        {
            name: "zh-tw",
            charset: "GBK"
        }],
        $skinList: [{
            name: "default",
            charset: "gb2312"
        },
        {
            name: "whyGreen",
            charset: "gb2312"
        },
        {
            name: "blue",
            charset: "gb2312"
        },
        {
            name: "green",
            charset: "gb2312"
        },
        {
            name: "simple",
            charset: "gb2312"
        },
        {
            name: "ext",
            charset: "gb2312"
        },
        {
            name: "blueFresh",
            charset: "gb2312"
        },
        {
            name: "twoer",
            charset: "gb2312"
        },
        {
            name: "YcloudRed",
            charset: "gb2312"
        }],
        $wdate: true,
        $crossFrame: false,
        $preLoad: false,
        $dpPath: "",
        doubleCalendar: false,
        enableKeyboard: true,
        enableInputMask: true,
        autoUpdateOnChanged: null,
        weekMethod: "MSExcel",
        position: {},
        lang: "auto",
        skin: "default",
        dateFmt: "yyyy-MM-dd",
        realDateFmt: "yyyy-MM-dd",
        realTimeFmt: "HH:mm:ss",
        realFullFmt: "%Date %Time",
        minDate: "0001-01-01 00:00:00",
        maxDate: "9999-12-31 23:59:59",
        minTime: "00:00:00",
        maxTime: "23:59:59",
        startDate: "",
        alwaysUseStartDate: false,
        yearOffset: 1911,
        firstDayOfWeek: 0,
        isShowWeek: false,
        highLineWeekDay: true,
        isShowClear: true,
        isShowToday: true,
        isShowOK: true,
        isShowOthers: true,
        readOnly: false,
        errDealMode: 0,
        autoPickDate: null,
        qsEnabled: true,
        autoShowQS: false,
        hmsMenuCfg: {
            H: [1, 6],
            m: [5, 6],
            s: [15, 4]
        },

        opposite: false,
        specialDates: null,
        specialDays: null,
        disabledDates: null,
        disabledDays: null,
        onpicking: null,
        onpicked: null,
        onclearing: null,
        oncleared: null,
        ychanging: null,
        ychanged: null,
        Mchanging: null,
        Mchanged: null,
        dchanging: null,
        dchanged: null,
        Hchanging: null,
        Hchanged: null,
        mchanging: null,
        mchanged: null,
        schanging: null,
        schanged: null,
        eCont: null,
        vel: null,
        elProp: "",
        errMsg: "",
        quickSel: [],
        has: {},
        getRealLang: function() {
            var d = l.$langList;
            for (var e = 0; e < d.length; e++) {
                if (d[e].name == this.lang) {
                    return d[e]
                }
            }
            return d[0]
        }
    };
    WdatePicker = g;
    var n = window,
    i = {
        innerHTML: ""
    },
    z = "document",
    B = "documentElement",
    H = "getElementsByTagName",
    E,
    u,
    h,
    f,
    D;
    var v = navigator.appName;
    if (v == "Microsoft Internet Explorer") {
        h = true
    } else {
        if (v == "Opera") {
            D = true
        } else {
            f = true
        }
    }
    u = l.$dpPath || q();
    if (l.$wdate) {
        m(u + "skin/WdatePicker.css")
    }
    E = n;
    if (l.$crossFrame) {
        try {
            while (E.parent != E && E.parent[z][H]("frameset").length == 0) {
                E = E.parent
            }
        } catch(y) {}
    }
    if (!E.$dp) {
        E.$dp = {
            ff: f,
            ie: h,
            opera: D,
            status: 0,
            defMinDate: l.minDate,
            defMaxDate: l.maxDate
        }
    }
    b();
    if (l.$preLoad && $dp.status == 0) {
        k(n, "onload",
        function() {
            g(null, true)
        })
    }
    if (!n[z].docMD) {
        k(n[z], "onmousedown", s, true);
        n[z].docMD = true
    }
    if (!E[z].docMD) {
        k(E[z], "onmousedown", s, true);
        E[z].docMD = true
    }
    k(n, "onunload",
    function() {
        if ($dp.dd) {
            r($dp.dd, "none")
        }
    });
    function b() {
        try {
            E[z],
            E.$dp = E.$dp || {}
        } catch(I) {
            E = n;
            $dp = $dp || {}
        }
        var w = {
            win: n,
            $: function(e) {
                return (typeof e == "string") ? n[z].getElementById(e) : e
            },
            $D: function(J, e) {
                return this.$DV(this.$(J).value, e)
            },
            $DV: function(J, e) {
                if (J != "") {
                    this.dt = $dp.cal.splitDate(J, $dp.cal.dateFmt);
                    if (e) {
                        for (var L in e) {
                            if (this.dt[L] === undefined) {
                                this.errMsg = "invalid property:" + L
                            } else {
                                this.dt[L] += e[L];
                                if (L == "M") {
                                    var M = e.M > 0 ? 1 : 0;
                                    var K = new Date(this.dt.y, this.dt.M, 0).getDate();
                                    this.dt.d = Math.min(K + M, this.dt.d)
                                }
                            }
                        }
                    }
                    if (this.dt.refresh()) {
                        return this.dt
                    }
                }
                return ""
            },
            show: function() {
                var K = E[z].getElementsByTagName("div"),
                J = 100000;
                for (var e = 0; e < K.length; e++) {
                    var L = parseInt(K[e].style.zIndex);
                    if (L > J) {
                        J = L
                    }
                }
                this.dd.style.zIndex = J + 2;
                r(this.dd, "block");
                r(this.dd.firstChild, "")
            },
            unbind: function(e) {
                e = this.$(e);
                if (e.initcfg) {
                    t(e, "onclick",
                    function() {
                        g(e.initcfg)
                    });
                    t(e, "onfocus",
                    function() {
                        g(e.initcfg)
                    })
                }
            },
            hide: function() {
                r(this.dd, "none")
            },
            attachEvent: k
        };
        for (var d in w) {
            E.$dp[d] = w[d]
        }
        $dp = E.$dp
    }
    function k(I, J, w, d) {
        if (I.addEventListener) {
            var e = J.replace(/on/, "");
            w._ieEmuEventHandler = function(K) {
                return w(K)
            };
            I.addEventListener(e, w._ieEmuEventHandler, d)
        } else {
            I.attachEvent(J, w)
        }
    }
    function t(w, I, e) {
        if (w.removeEventListener) {
            var d = I.replace(/on/, "");
            e._ieEmuEventHandler = function(J) {
                return e(J)
            };
            w.removeEventListener(d, e._ieEmuEventHandler, false)
        } else {
            w.detachEvent(I, e)
        }
    }
    function C(w, e, d) {
        if (typeof w != typeof e) {
            return false
        }
        if (typeof w == "object") {
            if (!d) {
                for (var I in w) {
                    if (typeof e[I] == "undefined") {
                        return false
                    }
                    if (!C(w[I], e[I], true)) {
                        return false
                    }
                }
            }
            return true
        } else {
            if (typeof w == "function" && typeof e == "function") {
                return w.toString() == e.toString()
            } else {
                return w == e
            }
        }
    }
    function q() {
        var I, w, d = n[z][H]("script");
        for (var e = 0; e < d.length; e++) {
            I = d[e].getAttribute("src") || "";
            I = I.substr(0, I.toLowerCase().indexOf("wdatepicker.js"));
            var w = I.lastIndexOf("/");
            if (w > 0) {
                I = I.substring(0, w + 1)
            }
            if (I) {
                break
            }
        }
        return I
    }
    function m(w, I, J) {
        var d = n[z][H]("HEAD").item(0),
        e = n[z].createElement("link");
        if (d) {
            e.href = w;
            e.rel = "stylesheet";
            e.type = "text/css";
            if (I) {
                e.title = I
            }
            if (J) {
                e.charset = J
            }
            d.appendChild(e)
        }
    }
    function p(I) {
        I = I || E;
        var L = 0,
        d = 0;
        while (I != E) {
            var N = I.parent[z][H]("iframe");
            for (var J = 0; J < N.length; J++) {
                try {
                    if (N[J].contentWindow == I) {
                        var K = o(N[J]);
                        L += K.left;
                        d += K.top;
                        break
                    }
                } catch(M) {}
            }
            I = I.parent
        }
        return {
            leftM: L,
            topM: d
        }
    }
    function o(I, w) {
        if (I.getBoundingClientRect) {
            return I.getBoundingClientRect()
        } else {
            var J = {
                ROOT_TAG: /^body|html$/i,
                OP_SCROLL: /^(?:inline|table-row)$/i
            };
            var e = false,
            M = null,
            P = I.offsetTop,
            K = I.offsetLeft,
            d = I.offsetWidth,
            O = I.offsetHeight;
            var L = I.offsetParent;
            if (L != I) {
                while (L) {
                    K += L.offsetLeft;
                    P += L.offsetTop;
                    if (c(L, "position").toLowerCase() == "fixed") {
                        e = true
                    } else {
                        if (L.tagName.toLowerCase() == "body") {
                            M = L.ownerDocument.defaultView
                        }
                    }
                    L = L.offsetParent
                }
            }
            L = I.parentNode;
            while (L.tagName && !J.ROOT_TAG.test(L.tagName)) {
                if (L.scrollTop || L.scrollLeft) {
                    if (!J.OP_SCROLL.test(r(L))) {
                        if (!D || L.style.overflow !== "visible") {
                            K -= L.scrollLeft;
                            P -= L.scrollTop
                        }
                    }
                }
                L = L.parentNode
            }
            if (!e) {
                var N = F(M);
                K -= N.left;
                P -= N.top
            }
            d += K;
            O += P;
            return {
                left: K,
                top: P,
                right: d,
                bottom: O
            }
        }
    }
    function x(e) {
        e = e || E;
        var J = e[z],
        I = (e.innerWidth) ? e.innerWidth: (J[B] && J[B].clientWidth) ? J[B].clientWidth: J.body.offsetWidth,
        d = (e.innerHeight) ? e.innerHeight: (J[B] && J[B].clientHeight) ? J[B].clientHeight: J.body.offsetHeight;
        return {
            width: I,
            height: d
        }
    }
    function F(e) {
        e = e || E;
        var J = e[z],
        d = J[B],
        I = J.body;
        J = (d && d.scrollTop != null && (d.scrollTop > I.scrollTop || d.scrollLeft > I.scrollLeft)) ? d: I;
        return {
            top: J.scrollTop,
            left: J.scrollLeft
        }
    }
    function s(d) {
        try {
            var w = d ? (d.srcElement || d.target) : null;
            if ($dp.cal && !$dp.eCont && $dp.dd && w != $dp.el && $dp.dd.style.display == "block") {
                $dp.cal.close()
            }
        } catch(d) {}
    }
    function A() {
        $dp.status = 2
    }
    var G, j;
    function g(M, d) {
        if (!$dp) {
            return
        }
        b();
        var J = {};
        for (var L in M) {
            J[L] = M[L]
        }
        for (var L in l) {
            if (L.substring(0, 1) != "$" && J[L] === undefined) {
                J[L] = l[L]
            }
        }
        if (d) {
            if (!w()) {
                j = j || setInterval(function() {
                    if (E[z].readyState == "complete") {
                        clearInterval(j)
                    }
                    g(null, true)
                },
                50);
                return
            }
            if ($dp.status == 0) {
                $dp.status = 1;
                J.el = i;
                a(J, true)
            } else {
                return
            }
        } else {
            if (J.eCont) {
                J.eCont = $dp.$(J.eCont);
                J.el = i;
                J.autoPickDate = true;
                J.qsEnabled = false;
                a(J)
            } else {
                if (l.$preLoad && $dp.status != 2) {
                    return
                }
                var I = N();
                if (n.event === I || I) {
                    J.srcEl = I.srcElement || I.target;
                    I.cancelBubble = true
                }
                J.el = J.el = $dp.$(J.el || J.srcEl);
                if (J.el == null) {
                    alert("WdatePicker:el is null!\nexample:onclick=\"WdatePicker({el:this})\"");
                    return;
                }
                try {
                    if (!J.el || J.el.My97Mark === true || J.el.disabled || ($dp.dd && r($dp.dd) != "none" && $dp.dd.style.left != "-970px")) {
                        if (J.el.My97Mark) {
                            J.el.My97Mark = false
                        }
                        return
                    }
                } catch(K) {}
                if (I && J.el.nodeType == 1 && !C(J.el.initcfg, M)) {
                    $dp.unbind(J.el);
                    k(J.el, I.type == "focus" ? "onclick": "onfocus",
                    function() {
                        g(M)
                    });
                    J.el.initcfg = M
                }
                a(J)
            }
        }
        function w() {
            if (h && E != n && E[z].readyState != "complete") {
                return false
            }
            return true
        }
        function N() {
            if (f) {
                try {
                    func = N.caller;
                    while (func != null) {
                        var O = func.arguments[0];
                        if (O && (O + "").indexOf("Event") >= 0) {
                            return O
                        }
                        func = func.caller
                    }
                } catch(P) {}
                return null
            }
            return event
        }
    }
    function c(e, d) {
        return e.currentStyle ? e.currentStyle[d] : document.defaultView.getComputedStyle(e, false)[d]
    }
    function r(e, d) {
        if (e) {
            if (d != null) {
                e.style.display = d
            } else {
                return c(e, "display")
            }
        }
    }
    function a(e, d) {
        var K = e.el ? e.el.nodeName: "INPUT";
        if (d || e.eCont || new RegExp(/input|textarea|div|span|p|a/ig).test(K)) {
            e.elProp = K == "INPUT" ? "value": "innerHTML"
        } else {
            return
        }
        if (e.lang == "auto") {
            e.lang = h ? navigator.browserLanguage.toLowerCase() : navigator.language.toLowerCase()
        }
        if (!e.eCont) {
            for (var J in e) {
                $dp[J] = e[J]
            }
        }
        if (!$dp.dd || e.eCont || ($dp.dd && (e.getRealLang().name != $dp.dd.lang || e.skin != $dp.dd.skin))) {
            if (e.eCont) {
                w(e.eCont, e)
            } else {
                $dp.dd = E[z].createElement("DIV");
                $dp.dd.style.cssText = "position:absolute";
                E[z].body.appendChild($dp.dd);
                w($dp.dd, e);
                if (d) {
                    $dp.dd.style.left = $dp.dd.style.top = "-970px"
                } else {
                    $dp.show();
                    I($dp)
                }
            }
        } else {
            if ($dp.cal) {
                $dp.show();
                $dp.cal.init();
                if (!$dp.eCont) {
                    I($dp)
                }
            }
        }
        function w(V, P) {
            var O = E[z].domain,
            S = false,
            M = '<iframe hideFocus=true width=9 height=7 frameborder=0 border=0 scrolling=no src="about:blank"></iframe>';
            V.innerHTML = M;
            var L = l.$langList,
            U = l.$skinList,
            T;
            try {
                T = V.lastChild.contentWindow[z]
            } catch(Q) {
                S = true;
                V.removeChild(V.lastChild);
                var N = E[z].createElement("iframe");
                N.hideFocus = true;
                N.frameBorder = 0;
                N.scrolling = "no";
                N.src = "javascript:(function(){var d=document;d.open();d.domain='" + O + "';})()";
                V.appendChild(N);
                setTimeout(function() {
                    T = V.lastChild.contentWindow[z];
                    R()
                },
                97);
                return
            }
            R();
            function R() {
                var Y = P.getRealLang();
                V.lang = Y.name;
                V.skin = P.skin;
                var X = ["<head><script>", "", "var doc=document, $d, $dp, $cfg=doc.cfg, $pdp = parent.$dp, $dt, $tdt, $sdt, $lastInput, $IE=$pdp.ie, $FF = $pdp.ff,$OPERA=$pdp.opera, $ny, $cMark = false;", "if($cfg.eCont){$dp = {};for(var p in $pdp)$dp[p]=$pdp[p];}else{$dp=$pdp;};for(var p in $cfg){$dp[p]=$cfg[p];}", "doc.oncontextmenu=function(){try{$c._fillQS(!$dp.has.d,1);showB($d.qsDivSel);}catch(e){};return false;};", "<\/script><script src=", u, "lang/", Y.name, ".js charset=", Y.charset, "><\/script>"];
                if (S) {
                    X[1] = 'document.domain="' + O + '";'
                }
                for (var W = 0; W < U.length; W++) {
                    if (U[W].name == P.skin) {
                        X.push('<link rel="stylesheet" type="text/css" href="' + u + "skin/" + U[W].name + '/datepicker.css" charset="' + U[W].charset + '"/>')
                    }
                }
                X.push('<script src="' + u + 'calendar.js"><\/script>');
                X.push('</head><body leftmargin="0" topmargin="0" tabindex=0></body></html>');
                X.push('<script>var t;t=t||setInterval(function(){if((typeof(doc.ready)=="boolean"&&doc.ready)||doc.readyState=="complete"){new My97DP();$cfg.onload();$c.autoSize();$cfg.setPos($dp);clearInterval(t);}},20);<\/script>');
                P.setPos = I;
                P.onload = A;
                T.write("<html>");
                T.cfg = P;
                T.write(X.join(""));
                T.close()
            }
        }
        function I(O) {
            var M = O.position.left,
            V = O.position.top,
            L = O.el;
            if (L == i) {
                return
            }
            if (L != O.srcEl && (r(L) == "none" || L.type == "hidden")) {
                L = O.srcEl
            }
            var T = o(L),
            P = p(n),
            U = x(E),
            Q = F(E),
            N = $dp.dd.offsetHeight,
            S = $dp.dd.offsetWidth;
            if (isNaN(V)) {
                V = 0
            }
            if ((P.topM + T.bottom + N > U.height) && (P.topM + T.top - N > 0)) {
                V += Q.top + P.topM + T.top - N - 2
            } else {
                V += Q.top + P.topM + T.bottom;
                var R = V - Q.top + N - U.height;
                if (R > 0) {
                    V -= R
                }
            }
            if (isNaN(M)) {
                M = 0
            }
            M += Q.left + Math.min(P.leftM + T.left, U.width - S - 5) - (h ? 2 : 0);
            O.dd.style.top = V + "px";
            O.dd.style.left = M + "px"
        }
    }
})();